﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using AGPR.Locadora.Model;
using AGPR.Locadora.Utils;

namespace AGPR.Locadora.Web.Controllers
{
    /// <summary>
    /// Controlador do Cadastro de Generos
    /// </summary>
    public class GenerosController : BaseController
    {
        #region Index
        public ActionResult Index()
        {
            return RedirectToAction("consultar");
        }
        #endregion

        #region Cadastrar Gênero
        public ActionResult Cadastrar()
        {
            ViewBag.Title = "Cadastrar Gênero";

            return View();
        }

        [HttpPost]
        public ActionResult Cadastrar(Genero genero)
        {
            genero.Cadastrar();

            return this.Index();
        }
        #endregion

        #region Alterar Gênero

        public ActionResult Alterar(int id)
        {
            var item = Genero.Get(id);

            if (item == null)
            {
                return this.Index();
            }

            ViewBag.Title = "Alterar Gênero";
            ViewBag.Genero = item;

            return View();
        }

        [HttpPost]
        public ActionResult Alterar(int id, Genero genero)
        {
            ViewBag.Title = "Alterar Gênero";
            ViewBag.Genero = genero.Alterar();

            return this.Index();
        }

        #endregion

        #region Excluir Gênero

        public ActionResult Excluir(int id)
        {
            var item = Genero.Get(id);

            if (item != null)
            {
                item.Excluir();
            }

            return Redirect(Request.UrlReferrer.PathAndQuery);
        }

        #endregion

        #region Consultar Gêneros

        public ActionResult Consultar(int p = 1)
        {
            ViewBag.Title = "Consulta de Gêneros";
            ViewBag.Total = Genero.Total();
            ViewBag.Paginacao = Paginacao.init(ViewBag.Total, p);            
            ViewBag.Generos = Genero.GetAll(ViewBag.Paginacao.Offset);
            ViewBag.TotalPagina = ViewBag.Generos.Count;

            return View();
        }

        #endregion
    }
}
